# 代理的常用功能
#   1.突破自身ip访问限制 访问国外的站点
#   2.访问一些单位或团体的内部资源
#       扩展：某大学fip(前提是该代理地址在该资源的允许访问范围之内)  使用教育网内地址段免费代理服务器
#           就可以用于对教育网开放的各类fip下载上传 以及各类资料查询共享等服务
#   3.提高访问的速度
#       扩展：通常代理服务器都设置一个较大的硬盘缓冲区  当有外界的信息传递时 同时也将其保存到缓冲区中
#           当其他用户再访问相同的信息时 则直接由缓冲区中取出信息  传给用户  以提高访问速度
#   4.隐藏真实ip
#       拓展：上网者也可以通过这种方法隐藏自己的ip 免受攻击
#
# 代码配置代理
#   创建request对象
#   创建proxyHandler对象
#   用handler对象创建opener对象
#   使用opener.open函数发送请求-

import urllib.request


# 网页地址
url = 'http://www.baidu.com/s?wd=ip'

# 请求头
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'
    }

# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)

# 模拟浏览器访问服务器
response = urllib.request.urlopen(request)

# proxies = {
#     'http': '121.230.211.142:3256'
# }
# # ip花钱买
#
# # handler   build_opener    open
# handler = urllib.request.ProxyHandler(proxies=proxies)
#
# opener = urllib.request.build_opener(handler)
#
# response = opener.open(request)


# 接收服务器响应的数据
content = response.read().decode('utf-8')
# print(content)

# 保存
with open('daili.html', 'w', encoding='utf-8') as fp:
    fp.write(content)
